/*
 * ProcesamientoArgumentos.h
 *
 *  Created on: 27/03/2012
 *      Author: putaro
 */

#ifndef PROCESAMIENTOARGUMENTOS_H_
#define PROCESAMIENTOARGUMENTOS_H_
#define HELP 'h'
#define VERSION 'V'
#define MERGESORT 'm'
#define SELECTIONSORT 's'
#define MERGESORTINVERSO 'i'
#define TAMANIO_MAXIMO_VECTOR 6553601
#define VERSION_PROGRAMA "1.0"

/*
 * Pre: "argc" es el número de elementos que contiene "argv".
 * "argv" es un vector con un conjunto de argumentos de entrada los cuales
 * pueden nombres de archivos u opciones dadas por el siguiente formato:
 * -h, --help
 * -V, --version
 * -m, --merge
 * -s, --sel
 * El primer parámetro es la opción, luego pueden ser las rutas de uno o
 * varios archivos en cualquier orden.
 * En caso que el parámetro vector sea un puntero nulo se creará el mismo.
 * Si el parámetro vector no es nulo se agregaran los datos nuevos al final
 * del mismo, siempre y cuando alcance la capacidad del vector.
 *
 * Post: Se han procesando los argumentos inicializando el vector parámetro
 * y su longitud.
 * NOTA: La destrucción del vector queda a cargo del usuario.
 */
void procesarArgumentos(const int argc , char* const argv[] ,
					unsigned char** vector , unsigned long int* const tamanio);

#endif /* PROCESAMIENTOARGUMENTOS_H_ */
